home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / drawjr.arc / DRAWJR.BAS (.txt)
Encoding:
GW-BASIC  |  1980-01-01  |  14.9 KB  |  320 lines

  1. 1  REM --SIXTEEN--------------SCREEN MACHINE--------------------------------
  2. 2  REM ---------------FOR IBM PCjr WITH 128K RAM----------------------------
  3. 3  REM ----------FROM COMPUTE!'S PC&PCjr MAGAZINE (4/84)--------------------
  4. 4  REM ----------KEYED BY GARY WEST, ALLENDALE SC 29810---------------------
  5. 5  REM ---------------USE CURSOR CONTROL KEYS-------------------------------
  6. 6  REM ---------------DOES NOT REQUIRE JOYSTICKS----------------------------
  7. 100  'The Screen Machine (PCjr)
  8. 110  SCREEN 0,1:KEY OFF:WIDTH 40
  9. 132  COLOR 15,0,0:CLS
  10. 133  LOCATE 8,15:PRINT "The"
  11. 134  LOCATE 10,14:COLOR 3:PRINT "S";:COLOR 4:PRINT "C";:COLOR 5:PRINT "R";:COLOR 11:PRINT "E";:COLOR 6:PRINT "E";:COLOR 8:PRINT "N"
  12. 135  LOCATE 12,13:COLOR 9:PRINT "M";:COLOR 4:PRINT "A";:COLOR 11:PRINT "C";:COLOR 12:PRINT "H";:COLOR 13:PRINT "I";:COLOR 14:PRINT "N";:COLOR 3:PRINT "E"
  13. 136  COLOR 15:LOCATE 18,15:PRINT "from":LOCATE 20,5:PRINT "Compute!'s PC&PCjr Magazine"
  14. 137  LOCATE 24,5:COLOR 14:PRINT "Press <SPACE BAR> to go on.":COLOR 15
  15. 138  GO$=INKEY$:IF GO$<>" " THEN 138
  16. 139  CLS
  17. 140  LOCATE 1,9:PRINT "THE SCREEN MACHINE":PRINT:PRINT:PRINT "While you are working with THE SCREEN":PRINT "MACHINE, you can press the <H> key for":PRINT "help."
  18. 141  PRINT:PRINT "If you need instructions about how to":PRINT "start, press the <S> key now.":PRINT
  19. 142  PRINT "If you know how the program works,":PRINT "simply press the <G> key to go on."
  20. 143  GO$=INKEY$:IF GO$<>"S" AND GO$<>"s" AND GO$<>"G" AND GO$<>"g" THEN 143
  21. 144  IF GO$="S" OR GO$="s" THEN GOSUB 10000
  22. 145  CLEAR,,,65536
  23. 146  DEFINT A-Y:SCREEN 5:KEY OFF:STRIG ON:DIM SHAPE(4004)
  24. 159  C=1:CB=1:SCREEN ,,1:CLS:SCREEN ,,0:CLS
  25. 160  XMIN=3:YMIN=3:XMAX=110:YMAX=119
  26. 180  FX!=319/(XMAX-XMIN):FY!=192/(YMAX-YMIN)
  27. 190  XWIDTH=7:YWIDTH=7:YLIMIT=8:XLIMIT=320-7:YLIMIT=200-7
  28. 200  LINE (3,0)-(3,6),15:LINE (0,3)-(6,3),15:PRESET(3,3)
  29. 210  DIM CROSS(18):GET (0,0)-(6,6),CROSS
  30. 220  GOSUB 980
  31. 230  ON ERROR GOTO 0
  32. 240  GOTO 310
  33. 260  X=X+(S0<20 AND X>0)-(S0>60 AND X<XLIMIT)
  34. 270  Y=Y+(S1<20 AND Y>0)-(S1>60 AND Y<YLIMIT)
  35. 280  OS0=S0:OS1=S1:GOTO 310
  36. 290  X=FX!*(S0-XMIN):Y=FY!*(S1-YMIN):IF X>XLIMIT THEN X=XLIMIT
  37. 300  IF Y>YLIMIT THEN Y=YLIMIT
  38. 310  IF OTHER THEN PUT(OX,OY),SHAPE ELSE PUT (OX,OY),CROSS
  39. 320  IF DRAWMODE THEN IF TR THEN IF Y<185 AND OY<185 THEN GOSUB 1010:LINE (SAVX,SAVY)-(X+3,Y+3),C:SAVX=X+3:SAVY=Y+3:GOSUB 1010:TR=0:GOTO 340
  40. 330  IF TR THEN IF Y<185 AND OY<185 THEN TR=0:LINE (OX+3,OY+3)-(X+3,Y+3),C ELSE C=INT((X+3)/80):GOSUB 980
  41. 340  ON ERROR GOTO 6000
  42. 341  IF OTHER THEN PUT(X,Y),SHAPE ELSE PUT (X,Y),CROSS
  43. 350  OX=X:OY=Y:C$=INKEY$:IF C$="" THEN 240
  44. 355  IF C$="*" THEN TR=1:GOTO 310
  45. 357  IF C$=">" THEN C=(C+1) AND 15:GOSUB 980:GOTO 310
  46. 360  IF C$>="a" AND C$<="z" THEN C$=CHR$(ASC(C$)-32)
  47. 370  IF C$<>CHR$(0)+CHR$(119) THEN 400 ELSE MSG$="Erase picture--Are you sure (Y/N):":GOSUB 1030
  48. 380  IF RTN$="y" OR RTN$="Y" THEN CLS:GOSUB 980:GOSUB 1000:GOTO 240
  49. 390  GOTO 240
  50. 400  IF C$="-" THEN JOYMODE=1:GOTO 240
  51. 410  IF C$="+" THEN JOYMODE=0:GOTO 240
  52. 415  IF C$="F" THEN IF Y<188 THEN FC=C ELSE FC=INT((X+3)/20)
  53. 417  IF C$="F" THEN GOSUB 1000:GOSUB 980:GOSUB 1000:GOTO 240
  54. 420  IF C$=CHR$(9) THEN GOSUB 1000:SCR=1-SCR:SCREEN,,SCR,SCR,0:GOSUB 980:GOSUB 1000:GOTO 240
  55. 425  IF C$=CHR$(0)+CHR$(15) THEN GOSUB 1000:PCOPY SCR,1-SCR:GOSUB 1000:GOTO 240
  56. 430  IF C$=CHR$(0)+CHR$(72) AND JOYMODE=1 THEN Y=Y+(Y>0):IF Y<1 THEN Y=1:GOTO 310 ELSE GOTO 310
  57. 431  IF C$=CHR$(0)+CHR$(72) AND JOYMODE=0 THEN Y=Y+10*(Y>0):IF Y<1 THEN Y=1 :GOTO 310 ELSE GOTO 310
  58. 440  IF C$=CHR$(0)+CHR$(80) AND JOYMODE=1 THEN Y=Y-(Y<YLIMIT):IF Y>184 THEN Y=184:GOTO 310 ELSE GOTO 310
  59. 441  IF C$=CHR$(0)+CHR$(80) AND JOYMODE=0 THEN Y=Y-10*(Y<YLIMIT):IF Y>184 THEN Y=184:GOTO 310 ELSE GOTO 310
  60. 450  IF C$=CHR$(0)+CHR$(75) AND JOYMODE=1 THEN X=X+(X>0):IF X<1 THEN X=1:GOTO 310 ELSE GOTO 310
  61. 451  IF C$=CHR$(0)+CHR$(75) AND JOYMODE=0 THEN X=X+10*(X>0):IF X<1 THEN X=1:GOTO 310 ELSE GOTO 310
  62. 460  IF C$=CHR$(0)+CHR$(77) AND JOYMODE=1 THEN X=X-(X<XLIMIT):IF X>300 THEN X=300:GOTO 310 ELSE GOTO 310
  63. 461  IF C$=CHR$(0)+CHR$(77) AND JOYMODE=0 THEN X=X-10*(X<XLIMIT):IF X>298 THEN X=287:GOTO 310 ELSE GOTO 310
  64. 470  IF C$="." THEN IF Y<185 THEN PSET(X+3,Y+3),C:GOTO 240
  65. 490  IF C$="B" THEN BK=(BK+1) AND 15:COLOR,BK:GOTO 240
  66. 500  IF C$=" " OR C$=CHR$(4) THEN IF SAVX THEN GOSUB 1010:SAVX=0
  67. 510  IF C$=" " OR C$=CHR$(4) THEN IF SAVX=0 AND Y<180 THEN SOUND 100,3:SAVX=X+3:SAVY=Y+3:GOSUB 1010 ELSE BEEP:GOTO 240
  68. 515  IF C$=" " THEN 240
  69. 520  IF C$=CHR$(27) THEN IF SAVX THEN GOSUB 1010:SAVX=0:DRAWMODE=0:GOSUB 980:GOTO 240 ELSE 240
  70. 530  IF C$=CHR$(8) THEN GOSUB 1000:XLIMIT=313:YLIMIT=192:OTHER=0:GOSUB 1000:GOTO 240
  71. 540  IF C$<>"J" OR C$="J" THEN 680
  72. 550  T=CB:CB=0:GOSUB 1000:GOSUB 980:LOCATE 25,1:PRINT "Hold stick to lower right, press FIRE.";:XMAX=0:YMAX=0
  73. 560  IF STICK(0)>XMAX THEN XMAX=STICK(0)
  74. 570  IF STICK(1)>YMAX THEN YMAX=STICK(1)
  75. 580  IF STRIG(1)=0 THEN 560
  76. 590  IF STRIG(1) THEN 650
  77. 600  GOSUB 980:LOCATE 25,1:PRINT "Hold stick to upper left, press FIRE.";
  78. 610  XMIN=1000:YMIN=1000
  79. 620  IF STICK(0)<XMIN THEN XMIN=STICK(0)
  80. 630  IF STICK(1)<YMIN THEN YMIN=STICK(1)
  81. 640  IF STRIG(1)=0 THEN 620
  82. 650  IF STRIG(1) THEN 650
  83. 660  FX!=319/(XMAX-WMIN)::FY!=192/(YMAX-YMIN)
  84. 670  CB=T:GOSUB 980:GOSUB 1000:GOTO 240
  85. 680  IF C$<>"C" THEN 710 ELSE IF SAVX=0 THEN BEEP:GOTO 240
  86. 690  DX=SAVX-X-3:DY=SAVY-Y-3:R=SQR(DX*DX+DY*DY)
  87. 700  GOSUB 1000:CIRCLE (SAVX,SAVY),R,C:GOSUB 980:GOSUB 1000:GOTO 240
  88. 710  IF C$=CHR$(4) THEN DRAWMODE=1:SOUND 500,2:GOSUB 980:GOTO 240
  89. 715  IF C$="D" THEN IF Y<188 AND SAVX THEN GOSUB 1000:LINE (SAVX,SAVY)-(X+3,Y+3),C:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
  90. 720  IF C$="R" THEN IF Y<185 AND SAVX THEN GOSUB 1000:LINE (SAVX,SAVY)-(X+3,Y+3),C,B:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
  91. 730  IF C$<>"G" THEN 750 ELSE IF SAVX=0 THEN BEEP:GOTO 240
  92. 732  XWIDTH=ABS(SAVX-X-3):YWIDTH=ABS(SAVY-Y-3):IF XWIDTH+YWIDTH=0 THEN BEEP:GOTO 240
  93. 735  IF 4+INT((XWIDTH*4+11)/8)*(YWIDTH+1)>8004 THEN BEEP:GOTO 240
  94. 740  GOSUB 1000:GET(X+3,Y+3)-(SAVX,SAVY),SHAPE
  95. 745  OTHER=1:XLIMIT=319-XWIDTH:YLIMIT=199-YWIDTH
  96. 746  IF X>XLIMIT THEN X=XLIMIT:OX=X
  97. 747  IF Y>YLIMIT THEN Y=YLIMIT:OY=Y
  98. 749  GOSUB 1000:GOTO 240
  99. 750  IF C$<>"P" THEN 830 ELSE IF OTHER=0 THEN BEEP:GOTO 240
  100. 760  MSG$="PUT:(P)SET,P(R)ESET,(A)ND,(O)R,(X)OR":GOSUB 1030
  101. 770  IF RTN$<>"" THEN V=INSTR("PRAXO",RTN$):IF V THEN ON V GOTO 780,790,800,810,820
  102. 775  GOTO 240
  103. 780  GOSUB 1000:PUT (X,Y),SHAPE,PSET:GOSUB 1000:GOTO 240
  104. 790  GOSUB 1000:PUT (X,Y),SHAPE,PRESET:GOSUB 1000:GOTO 240
  105. 800  GOSUB 1000:PUT (X,Y),SHAPE,AND:GOSUB 1000:GOTO 240
  106. 810  GOSUB 1000:PUT (X,Y),SHAPE,XOR:GOSUB 1000:GOTO 240
  107. 820  GOSUB 1000:PUT (X,Y),SHAPE,OR:GOSUB 1000:GOTO 240
  108. 830  IF C$="X" THEN CB=1-CB:GOSUB 980:GOTO 240
  109. 840  IF C$<>CHR$(6) THEN 880
  110. 860  GOSUB 1000:PAINT (X+3,Y+3),C,FC:GOSUB 1000
  111. 870  GOSUB 980:GOTO 240
  112. 880  IF C$="T" THEN IF Y<185 THEN MSG$="Text:":GOSUB 1340:GOSUB 1000:LOCATE Y/8+1,X/8+1:COLOR C-(C=0),BK:PRINT RTN$;:COLOR 7,BK:GOSUB 1000:GOTO 240 ELSE BEEP:GOTO 240
  113. 890  IF C$="Q" THEN MSG$="Quit: Are you sure? (Y/N):":GOSUB 1030:IF RTN$="Y" THEN SCREEN 0,1:RUN "menu.bas" ELSE 240
  114. 900  IF C$<>"S" THEN 940
  115. 910  MSG$="Save picture: Filename?":GOSUB 1340:IF RTN$="" THEN 240
  116. 920  GOSUB 1000:ON ERROR GOTO 925:DEF SEG=&H1000+&H800*SCR:BSAVE RTN$+".PIC",0,&H8000:ON ERROR GOTO 0:GOSUB 1000:GOTO 240
  117. 925  GOSUB 1000
  118. 930  MSG$="Error...Press ENTER:":GOSUB 1030:RESUME 230
  119. 940  IF C$<>"L" THEN 970
  120. 950  MSG$="Load picture: Filename?":GOSUB 1340:IF RTN$="" THEN 240
  121. 960  ON ERROR GOTO 930:DEF SEG=&H1000+&H800*SCR:BLOAD RTN$+".PIC",0:GOSUB 980:GOSUB 1000:GOTO 230
  122. 970  MSG$="Need help? (Y/N):":GOSUB 1030:IF RTN$="y" OR RTN$="Y" THEN 1070 ELSE 240
  123. 980  LINE (0,188)-(319,199),0,BF:IF CB THEN FOR I=0 TO 15:LINE (I*20+2,190)-(I*20+17,197),I,BF:NEXT:LOCATE 25,1:PRINT CHR$(32+36*DRAWMODE);:LINE (C*20,188)-(C*20+19,199),15,B:LINE (FC*20,194)-(FC*20+19,194),15
  124. 990  RETURN
  125. 1000  IF OTHER THEN PUT (X,Y),SHAPE ELSE PUT (X,Y),CROSS
  126. 1010  IF SAVX THEN PUT(SAVX-3,SAVY-3),CROSS,XOR
  127. 1020  RETURN
  128. 1030  GOSUB 1000:T=CB:CB=0:GOSUB 980:LOCATE 25,1:PRINT MSG$;:RTN$=INPUT$(1):CB=T:GOSUB 980:GOSUB 1000
  129. 1040  IF RTN$>="a" AND RTN$<="z" THEN RTN$=CHR$(ASC(RTN$)-32)
  130. 1050  IF RTN$=CHR$(13) THEN TRN$=""
  131. 1060  RETURN
  132. 1070  RESTORE 1115:GOSUB 1000:TT=CB:CB=0
  133. 1080  READ MSG$:IF MSG$="END" THEN CB=TT:GOSUB 980:GOSUB 1000:GOTO 240
  134. 1090  GOSUB 980:LOCATE 25,20-LEN(MSG$)/2:PRINT MSG$;
  135. 1100  GO$=INKEY$:IF GO$="" THEN 1100
  136. 1105  IF GO$=CHR$(27) THEN CB=TT:GOSUB 980:GOSUB 1000:GOTO 240
  137. 1110  GOTO 1080
  138. 1115  DATA "HELP: Press any key to continue"
  139. 1120  DATA {SHIFT}+{+} Set fast cross-hair
  140. 1121  DATA {-} Set slow cross-hair
  141. 1122  DATA {SHIFT}+{>} Changes color for drawing
  142. 1130  DATA {Ctrl}+{Fn}+{Home} Clear screen
  143. 1140  DATA {B} Change background color
  144. 1160  DATA {SPACE BAR} Mark start position
  145. 1170  DATA {ESC} Cancel mark/draw mode
  146. 1175  DATA {D} Draw line from mark
  147. 1180  DATA {Ctrl}+{D} Enter draw mode
  148. 1190  DATA {C} Draw circle (mark=center)
  149. 1200  DATA {R} Draw rectangle/mark=opposite corner
  150. 1210  DATA {X} Toggle color bars on/off
  151. 1215  DATA {F} Select fill border color
  152. 1220  DATA {Ctrl}+{F} Fill in area
  153. 1230  DATA {T} Enter text at crosshair
  154. 1240  DATA {Q} Quit program
  155. 1250  DATA {S} Save picture
  156. 1260  DATA {L} Load picture
  157. 1265  DATA {Tab} Switch to alternate page
  158. 1270  DATA {Shift}+{Tab} Copy to alternate page
  159. 1271  DATA {G} Get shape
  160. 1272  DATA {P} Put shape
  161. 1273  DATA {Backspace} Discard shape
  162. 1275  DATA {Arrow keys} move cursor
  163. 1276  DATA {.} Plot point
  164. 1277  DATA {*} Draw line and move mark
  165. 1280  DATA END
  166. 1340  GOSUB 1000:T=CB:CB=0:GOSUB 980:LOCATE 25,1:PRINT MSG$;:LINE INPUT ;RTN$:CB=T:GOSUB 980:GOSUB 1000:RETURN
  167. 5000  DEF SEG:ML$=SPACE$(39):V=VARPTR(ML$):DEF FNML!(Z)=PEEK(V)+256*PEEK(V+1):Z=FNML!(0)
  168. 5010  FOR I=0 TO 38:READ A:POKE Z+1,A:NEXT:RETURN
  169. 5020  DATA &H55
  170. 5030  DATA &H1E
  171. 5040  DATA &HBE,00,00
  172. 5050  DATA &HBB,00,&H10
  173. 5060  DATA &H8E,&HDB
  174. 5070  DATA &H8B,&H04
  175. 5080  DATA &HBB,00,&HB8
  176. 5090  DATA &H8E,&HDB
  177. 5100  DATA &H87,&H04
  178. 5110  DATA &HBB,00,&H10
  179. 5120  DATA &H8E,&HDB
  180. 5130  DATA &H89,04
  181. 5140  DATA &H46
  182. 5150  DATA &H46
  183. 5160  DATA &H81,&HFE,00,&H40
  184. 5170  DATA &H72,&HE3
  185. 5180  DATA &H1F
  186. 5190  DATA &H5D
  187. 5200  DATA &HCA,0,0
  188. 6000  REM ------------trap illegal function at bottom of screen--------
  189. 6005  IF OTHER THEN PUT(X,Y-10),SHAPE ELSE PUT(X,Y-10),CROSS
  190. 6015  Y=Y-10
  191. 6020  RESUME 230
  192. 10000  REM --------------------SUMMARY OF INSTRUCTIONS-------------------
  193. 10005  CLS
  194. 10010  WIDTH 80
  195. 10020  LOCATE 1,30:PRINT "THE SCREEN MACHINE            1":PRINT:PRINT
  196. 10030  PRINT "The following keys control the screen:
  197. 10031  PRINT
  198. 10035  PRINT TAB(3);"<H>";TAB(20);"to get help at any time during work"
  199. 10040  PRINT TAB(3);"<arrow keys>";TAB(20);"move the cross-hair left, right, up, or down"
  200. 10050  PRINT TAB(3);"<->";TAB(20);"(dash) sets speed of cross-hair to SLOW"
  201. 10051  PRINT TAB(3);"<+>";TAB(20);"<SHIFT>+<+>; sets speed of cross-hair to FAST"
  202. 10060  PRINT TAB(3);"<B>";TAB(20);"change background color"
  203. 10080  PRINT TAB(3);"<CTRL>+<FN>";TAB(20);"clear the screen"
  204. 10081  PRINT TAB(5);"and <HOME>"
  205. 10082  PRINT TAB(3);"<Q>";TAB(20);"quit the program"
  206. 10083  PRINT TAB(3);"<X>";TAB(20);"turn off/turn on color chart at bottom of screen"
  207. 10090  LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
  208. 10091  GO$=INKEY$:IF GO$="" THEN 10091
  209. 10092  IF GO$<>" " AND GO$<>CHR$(27) THEN 10091
  210. 10093  IF GO$=CHR$(27) THEN RETURN
  211. 10100  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            2":PRINT:PRINT
  212. 10110  PRINT "The following keys control line drawing and text:":PRINT
  213. 10120  PRINT TAB(3);"<SPACE BAR>";TAB(20);"mark beginning of any drawing"
  214. 10130  PRINT TAB(3);"<CTRL>+<D>";TAB(20);"enter draw mode, which automatically"
  215. 10131  PRINT TAB(20);"   draws line and sets new mark when <*> is pressed"
  216. 10140  PRINT TAB(3);"<ESC>";TAB(20);"cancel any mark and exit draw mode"
  217. 10150  PRINT TAB(3);"<D>";TAB(20);"draw line from mark to cross-hair"
  218. 10151  PRINT TAB(3);"<*>";TAB(20);"in draw mode, draws line from mark to"
  219. 10152  PRINT TAB(20);"   cross-hair and resets mark at cross-hair"
  220. 10160  PRINT TAB(3);"<C>";TAB(20);"draw circle with center at mark and radius"
  221. 10161  PRINT TAB(20);"   equal to distance from mark to cross-hair"
  222. 10170  PRINT TAB(3);"<R>";TAB(20);"draw rectangle with mark and cross-hair as"
  223. 10171  PRINT TAB(20);"   opposite corners"
  224. 10180  PRINT TAB(3);"<.>";TAB(20);"(period) draw one point at cross-hair"
  225. 10190  PRINT TAB(3);"<T>";TAB(20);"type text at cross-hair"
  226. 10191  LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
  227. 10192  GO$=INKEY$:IF GO$="" THEN 10192
  228. 10193  IF GO$<>" " AND GO$<>CHR$(27) THEN 10192
  229. 10194  IF GO$=CHR$(27) THEN RETURN
  230. 10200  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            3":PRINT:PRINT
  231. 10210  PRINT "The following keys control color:":PRINT
  232. 10220  PRINT TAB(3);CHR$(34);">";CHR$(34);TAB(20);"change color for drawing or painting (filling figures);"
  233. 10221  PRINT TAB(20);"   moves box in color chart at bottom of screen"
  234. 10230  PRINT TAB(3);"<X>";TAB(20);"turn off/turn on color chart at bottom of screen"
  235. 10240  PRINT TAB(3);"<F>";TAB(20);"mark color to use as border of figure to be"
  236. 10241  PRINT TAB(20);"   painted (filled); [SEE NOTE ON THIS SCREEN]"
  237. 10250  PRINT TAB(3);"<CTRL>+<F>";TAB(20);"to paint (fill) figure in which cross-hair"
  238. 10251  PRINT TAB(20);"   is located; [SEE NOTE ON THIS SCREEN]"
  239. 10260  PRINT:PRINT "NOTE:"
  240. 10261  PRINT "When you want THE SCREEN MACHINE to paint (fill) a figure, you"
  241. 10262  PRINT "must tell it the color of the border of that figure so it will"
  242. 10263  PRINT "know which lines to stay in while it paints.":PRINT
  243. 10264  PRINT "To mark the border color, move the box to that color and, then,"
  244. 10265  PRINT "press the <F> key, which will move the line to that color."
  245. 10266  PRINT "Then move the box to the color you want to paint (fill) with."
  246. 10270  LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
  247. 10271  GO$=INKEY$:IF GO$="" THEN 10271
  248. 10272  IF GO$<>" " AND GO$<>CHR$(27) THEN 10271
  249. 10273  IF GO$=CHR$(27) THEN RETURN
  250. 10300  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            4":PRINT:PRINT
  251. 10310  PRINT "The following key control saving your pictures on your disk":PRINT "and loading them back from the disk when you want to continue working":PRINT "with them:"
  252. 10320  PRINT
  253. 10330  PRINT TAB(3);"<S>";TAB(20);"save your picture to your disk"
  254. 10340  PRINT TAB(3);"<L>";TAB(20);"load an existing picture from your disk"
  255. 10350  PRINT:PRINT:PRINT
  256. 10360  PRINT "When saving a picture, you should give it a name that has"
  257. 10361  PRINT "8 or fewer letters.  You should not use spaces, period, commas,"
  258. 10362  PRINT "or extensions for your picture name.  Your picture will be saved"
  259. 10363  PRINT "under the name you give it plus the extension, ";CHR$(34);".PIC";CHR$(34)
  260. 10364  PRINT "so you can find it in your disk files."
  261. 10370  PRINT
  262. 10380  PRINT "To load a picture from your disk, you should give (when asked)"
  263. 10381  PRINT "the name as it appears in the disk files--however, you should"
  264. 10382  PRINT "NOT give the extension.  THE SCREEN MACHINE will know to use"
  265. 10383  PRINT "the ";CHR$(34);".PIC";CHR$(34);" when it looks for your picture."
  266. 10390  LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
  267. 10391  GO$=INKEY$:IF GO$="" THEN 10391
  268. 10392  IF GO$<>" " AND GO$<>CHR$(27) THEN 10391
  269. 10393  IF GO$=CHR$(27) THEN RETURN
  270. 10400  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            5":PRINT:PRINT
  271. 10410  PRINT "The following keys control moving figures around the screen:":PRINT
  272. 10420  PRINT TAB(3);"<G>";TAB(20);"get the figure to be moved; [SEE NOTE ON THIS SCREEN]"
  273. 10430  PRINT TAB(3);"<P>";TAB(20);"put the figure down at new location; [SEE NOTE]"
  274. 10435  PRINT TAB(3);"<BACKSPACE>";TAB(20);"finalize a move and go back to drawing"
  275. 10440  PRINT:PRINT
  276. 10450  PRINT "To GET a figure, place the cross-hair at one corner of an imagined"
  277. 10451  PRINT "rectangle that contains the figure.  Mark that corner by pressing"
  278. 10452  PRINT "the <SPACE BAR> and move the cross-hair to the opposite corner of"
  279. 10453  PRINT "that imagined rectangle.  Then press the <G> key.  The rectangle"
  280. 10454  PRINT "containing the figure can then be moved to any place on the screen."
  281. 10455  PRINT
  282. 10460  PRINT "When the figure is in the location you'd like, press the <P> key"
  283. 10461  PRINT "to put it down.  You can then move the figure again (using the"
  284. 10462  PRINT "<arrow keys>) or you can press <BACKSPACE> to do other things."
  285. 10470  LOCATE 24,1:PRINT "Press <SPACE BAR> for more about moving figures or <ESC> to return.";
  286. 10471  GO$=INKEY$:IF GO$="" THEN 10471
  287. 10472  IF GO$<>" " AND GO$<>CHR$(27) THEN 10471
  288. 10473  IF GO$=CHR$(27) THEN RETURN
  289. 10500  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            6":PRINT:PRINT
  290. 10510  PRINT "More about moving figures around the screen:":PRINT
  291. 10520  PRINT "When you press the <P> key to place a figure in its new location,"
  292. 10521  PRINT "you will see a message like this:"
  293. 10530  PRINT TAB(15);"(P)set  p(R)eset (A)nd (O)r (X)or"
  294. 10531  PRINT "You should press the letter in parentheses to indicate what you"
  295. 10532  PRINT "want THE SCREEN MACHINE to do.  PSET will simply put the figure"
  296. 10533  PRINT "at its new location.  PRESET will put the figure at its new"
  297. 10534  PRINT "location--but will change all the colors to complementary colors."
  298. 10535  PRINT "AND will put down only the parts of the figure that correspond to"
  299. 10536  PRINT "things that already exist in the background.  OR merges the figure"
  300. 10537  PRINT "into the background with black areas being ignored.  XOR creates a"
  301. 10538  PRINT "composite picture with the figure and the existing background.":PRINT
  302. 10540  PRINT "To erase a part of the screen, mark a corner (with the <SPACE BAR>)
  303. 10541  PRINT "and move the cross-hair to the opposite corner.  Press the <G> key"
  304. 10542  PRINT "to GET the figure.  Then, using the <arrow keys>, move the figure"
  305. 10543  PRINT "back--exactly--on top of itself and press the <P> to put it back."
  306. 10544  PRINT "Then press ";CHR$(34);"X";CHR$(34);" (for XOR) and the <BACKSPACE> key."
  307. 10550  LOCATE 24,1:PRINT "Press the <SPACE BAR> for more help or <ESC> to return to THE SCREEN MACHINE.";
  308. 10551  GO$=INKEY$:IF GO$="" THEN 10551
  309. 10552  IF GO$<>" " AND GO$<>CHR$(27) THEN 10551
  310. 10553  IF GO$=CHR$(27) THEN RETURN
  311. 10600  CLS:LOCATE 1,30:PRINT "THE SCREEN MACHINE            7":PRINT:PRINT
  312. 10610  PRINT "The following keys can be used for copying your pictures to alternate"
  313. 10611  PRINT "screens (pages):"
  314. 10620  PRINT TAB(3);"<TAB>";TAB(20);"move alternate screen to display and current"
  315. 10621  PRINT TAB(20);"   screen to alternate screen"
  316. 10630  PRINT TAB(3);"<SHIFT>+<TAB>";TAB(20);"copy current screen to alternate screen"
  317. 10990  LOCATE 24,1:PRINT "Press the <SPACE BAR> to return to THE SCREEN MACHINE.";
  318. 10991  GO$=INKEY$:IF GO$<>" " THEN 10991
  319. 10999  RETURN
  320.